﻿package app.view.components.sections.expo 
{
	import app.model.types.LangTypes;
	import app.model.types.SectionType;
	import app.model.vo.SectionVO;
	import app.view.components.buttons.GlamurBtnBase;
	import app.view.components.guiDima.switchContent.SwitchContentEventsDBase;
	import app.view.components.header.HeadMarkerBase;
	import app.view.components.sections.LabeledSectionBase;
	import app.view.events.UIEvent;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	
	/**
	 * 1.1.5.1 ПРОГРАММА НА СЕГОДНЯ
	 * @author Dmitryi_Koruagin, icq:585466579, dmitryikoruagin@mail.ru, skype: ok_ru1
	 */
	public class ExpoTodayProgrammDBase extends LabeledSectionBase
	{
		// app.view.components.sections.expo.ExpoTodayProgrammDBase
		
		public var calendarEvents_Btn:GlamurBtnBase;
		
		public var switchBox:SwitchContentEventsDBase
		
		
		public function ExpoTodayProgrammDBase() 
		{
			super();
			
		}
		
		private function setEvents():void
		{
			calendarEvents_Btn.addEventListener(MouseEvent.CLICK, onClickCalendarBtn);
			addEventListener(UIEvent.CLICK_ITEM_EVENT, onCLickEvent, true);
		}
		
		private function removeEvents():void
		{
			calendarEvents_Btn.removeEventListener(MouseEvent.CLICK, onClickCalendarBtn);
			removeEventListener(UIEvent.CLICK_ITEM_EVENT, onCLickEvent, true);
		}
		
		override public function onDestroy():void 
		{
			// чистим что тут есть и вызываем супера
			removeEvents();
			
			switchBox.destroy();
			
			super.onDestroy();
		};
		
		override public function get data():Object { return _data; };
		
		override public function set data(value:Object):void 
		{
			super.data = value;
			
			//trace('data!!!', _data.params);
			//
			//trace('data!!!',_data.params.selected.data);
			//trace('data!!!',_data.params.selected.fullDateString);
			//
			//trace('data!!!',_data.params.today.data);
			//trace('data!!!',_data.params.today.fullDateString);
			
			
			
			/*for (var name:String in _data.params.today.data) 
			{
				trace('name = ', name);
			}*/
			
			var title:String = '';
			
			switch (_data.lang) 
			{
				case LangTypes.RUSSIAN:
					title = 'Программа на '+_data.params.selected.fullDateString;
				break;
				
				case LangTypes.ENGLISH:
					title = 'Schedule on '+_data.params.selected.fullDateString;
				break;
				
				case LangTypes.CHINA:
					title = 'Schedule on '+_data.params.selected.fullDateString;
				break;
			}
			
			setParamHead(HeadMarkerBase.BGD_RED, title);
			
			// params будет вот в таком формате {today: {date:'', events}, selected:{date:'', events}}
			// params будет вот в таком формате var o:Object = { today : _grid.selectedItem, selected: _grid.selectedItem2};
			
			
			
			var lineArr:Array = new Array();
			var ind:int = 0;
			
			for each(var object:* in _data.params.selected.data.event)
			{
				//trace('name = ', object);
				lineArr.push( { id: ind, event:object } );
				
				//trace('line',lineArr[ind].id);
				ind++;
			}
			
			
			// разбиваем в массив с массивами по десять штук
			var arrTo10:Array = new Array();
			
			//trace('-------------------------',lineArr.length);
			var n:Number;
			var max_const:Number = 10;
			var max:Number = 10;
			var len:Number = lineArr.length;
			
			n = Math.ceil(len / max);
			
			//trace('********',n);
			
			if (n>1) 
			{
				// разбиваем в массивы по десять
				for (var i:int = 0; i < n; i++) 
				{
					var arr10:Array = new Array();
					
					for (var j:int = 0; j < max; j++) 
					{
						//arr10[j] = lineArr[i * (max) + j];
						//trace('ind',i * max_const + j);
						arr10.push(lineArr[i * max_const + j]);
					}
					//trace('11',arr10[j]);
					//
					len = len - max;
					if (len<max) 
					{
						max = len;
					}else
					{
						
					}
					//trace('---------------------');
					
					arrTo10.push(arr10);
				}
				
				switchBox.data = arrTo10;
			}else
			{
				
				switchBox.data = [lineArr];
			}
			
			
			setEvents();
		};
		
		/**
		 * возвращаемся в календарь
		 * @param	e
		 */
		private function onClickCalendarBtn(e:MouseEvent):void 
		{
			removeEvents();
			
			var obj:SectionVO = new SectionVO();
			obj.id = SectionType.PAGE_EXPO_EVENTS_CALENDAR;
			obj.currentId = id;
			obj.params = null;
			
			var ev:UIEvent = new UIEvent(UIEvent.SECTION_CHANGE);
			ev.data = obj;
			dispatchEvent(ev);
			
		}
		
		/**
		 * переходим конкретное событие
		 * @param	e
		 */
		private function onCLickEvent(e:UIEvent):void 
		{
			//trace('click = ', e.data.id);
			
			removeEvents();
			
			var objInfo:Object = new Object();
			
			//trace('777', _data.params.selected.fullDateString);
			
			objInfo.data = _data.params.selected;
			objInfo.selectedId = e.data.id;
			objInfo.today = _data.params.today;
			
			var obj:SectionVO = new SectionVO();
			obj.id = SectionType.PAGE_EXPO_TODAY_PROGRAMM_EXTEND;
			obj.currentId = id;
			obj.params = objInfo;
			
			var ev:UIEvent = new UIEvent(UIEvent.SECTION_CHANGE);
			ev.data = obj;
			dispatchEvent(ev);
		}
		
	}

}